'''
数据背景：小米手机在5个维度的评分（满分10分），拍照8.5、性能9.2、续航7.8、外观8.0、价格7.5；同时对比同价位华为手机的评分：拍照7.8、性能
8.5、续航8.2、外观8.5、价格8.0。绘制要求：在同一张雷达图中展示两款手机的各维度评分，用不同颜色的线条和填充区分两款手机，每个维度的刻度范围为0-
10，添加图表标题“两款手机各维度评分雷达图”。分析目标：对比两款手机在各维度的优势与劣势，判断哪款手机综合表现更优
'''
import matplotlib.pyplot as plt
import numpy as np
from holoviews.plotting.bokeh.styles import marker

# 定义数据
labels = ['拍照', '性能', '续航', '外观', '价格']
values1 = [8.5, 9.2, 7.8, 8.0, 7.5]
values2 = [9.8, 1.5, 9.2, 8.5, 1.0]
# 计算角度
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist()
# 闭合雷达图
values1 += values1[:1]
values2 += values2[:1]
angles += angles[:1]
# 绘制雷达图
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))
# 绘制门店A的雷达图
ax.plot(angles, values1, color='skyblue', linewidth=2,marker='o', label='小米')
ax.fill(angles, values1, alpha=0.25, color='skyblue')
# 绘制门店B的雷达图
ax.plot(angles, values2, color='salmon', linewidth=2,marker='s', label='华为')
ax.fill(angles, values2, alpha=0.25, color='salmon')
# 4.设置属性
# 设置角度标签
ax.set_xticks(angles[:-1])# 避免与最后一个角度重复
ax.set_xticklabels(labels, fontsize=12)#含义：设置x轴的刻度标签，fontsize=12表示字体大小为12
# 设置数据范围
ax.set_ylim(0, 10)
# pad控制标题距离
ax.set_title('两款手机各维度评分雷达图', fontsize=16, fontweight='bold', pad=20)
#避免乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 添加图例
ax.legend(fontsize=12, loc='upper right')
# 调整布局
plt.tight_layout()
# 显示图表
plt.show()
